const path = require('path')
const TerserPlugin = require('terser-webpack-plugin');
function resolve(dir) {
  return path.join(__dirname, dir)
}
module.exports = {
  publicPath: './',
  css: {
    loaderOptions: {
      less: {
        modifyVars: {
          'primary-color': '#386bd7', // 全局主色
          'link-color': '#386bd7', // 链接色
          // 'success-color': '#52c41a', // 成功色'
          // 'warning-color': '#faad14', // 警告色
          // 'error-color': '#f5222d', // 错误色
          // 'font-size-base': '14px', // 主字号
          // 'heading-color': 'rgba(0, 0, 0, 0.85)', // 标题色
          // 'text-color': 'rgba(0, 0, 0, 0.65)', // 主文本色
          // 'text-color-secondary': 'rgba(0, 0, 0, 0.45)', // 次文本色
          // 'disabled-color': 'rgba(0, 0, 0, 0.25)', // 失效色
          // 'border-radius-base': '4px', // 组件/浮层圆角
          // 'border-color-base': '#d9d9d9', // 边框色
          // 'box-shadow-base': '0 2px 8px rgba(0, 0, 0, 0.15)', // 浮层阴影
        },
        javascriptEnabled: true,
      }
    }
  },
  // 第三方插件配置
  pwa: {
    iconPaths: {
      favicon32: 'favicon.ico',
      favicon16: 'favicon.ico',
      appleTouchIcon: 'favicon.ico',
      maskIcon: 'favicon.ico',
      msTileImage: 'favicon.ico'
    }
  },
  configureWebpack: {
    devtool: process.env.NODE_ENV === "production" ? 'false' : 'cheap-module-source-map',
    resolve: {
      alias: {
        '@': resolve('src')
      }
    }
  },
  /*
  configureWebpack: {
    // webpack plugins
    plugins: [
      // Ignore all locale files of moment.js
      new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
      new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery',
        'windows.jQuery': 'jquery'
      })
    ],
    //configureWebpack 这部分打包文件添加时间戳，防止缓存不更新
    output: { // 输出重构  打包编译后的 文件名称  【模块名称.序列号】
      filename: `js/[name].[hash].js`,
      chunkFilename: `js/[name].[hash].js`,
    },
  },
*/
  // configureWebpack: config => {
    // 生产环境取消 console.log
    // if (process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'test') {
      // config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
    // }
  // },
  // 去console插件
  // configureWebpack: { 
  //   optimization: { 
  //     minimizer: [ 
  //       new UglifyJsPlugin({
  //         uglifyOptions: { 
  //           warnings: false, 
  //           compress: { 
  //             pure_funcs: ['console.log'] 
  //             //移除console 
  //           } 
  //         } 
  //       }) 
  //     ] 
  //   } 
  // },
  chainWebpack: config => {
    config.resolve.alias
      .set('@', resolve('src'))
      .set('@api', resolve('src/api'))
      .set('@assets', resolve('src/assets'))
      .set('@comp', resolve('src/components'))
      .set('@utils', resolve('src/utils'))
      .set('@store', resolve('src/store'))
      .set('@views', resolve('src/views'))
  },
  devServer: {
    hot: true,//自动保存
    // host: 'plmtest.pisx.com',
    // port: 80,
    open: true,
    proxy: {
      '/api': {
        // target: 'http://119.91.98.207:8083',
        target: 'http://192.168.2.16:31789',
        ws: true, // 是否启用websockets
        changOrigin: true, //开启代理：在本地会创建一个虚拟服务端，然后发送请求的数据，并同时接收请求的数据，这样客户端端和服务端进行数据的交互就不会有跨域问题
        pathRewrite: {
          '^/api': ''
        }
      },
      // '/auth': {
      //   // target: 'http://119.91.98.207:8083',
      //   target: 'http://192.168.2.16:31888',
      //   ws: true, // 是否启用websockets
      //   changOrigin: true, //开启代理：在本地会创建一个虚拟服务端，然后发送请求的数据，并同时接收请求的数据，这样客户端端和服务端进行数据的交互就不会有跨域问题
      //   pathRewrite: {
      //     '^/auth': ''
      //   }
      // },
      '/plm': {
        target: 'http://5087h80y37.51vip.biz',
        ws: true, // 是否启用websockets
        changOrigin: true, //开启代理：在本地会创建一个虚拟服务端，然后发送请求的数据，并同时接收请求的数据，这样客户端端和服务端进行数据的交互就不会有跨域问题
        pathRewrite: {
          '^/plm': ''
        }
      }
    }
  },
  productionSourceMap: false,
  lintOnSave: false
}